package com.woniu.factorys;

import com.woniu.entity.Person;
import com.woniu.test.Test;

import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

/**
 * 模拟搞一个Spring工厂类（解决问题,实现下面功能）
 * 1.读取配置文件的时候---不创建对象
 * 2.读取配置文件的时候---就创建对象
 */
public class MyBeanFactory {
    private static Map<String,Object> map=new HashMap<>();
    Person person0=null;
    static{
        Properties properties = new Properties();
        //需要一个输入流
        InputStream inputstream = Test.class.getResourceAsStream("person. properties");
        //读取输入流，转换成对象信息，并封装到Propelrties对象中
        try {
            properties.load(inputstream);
            //properties这个对象中，有没有办法获取到文件流中的内容?通过key获取全限定类名
            Set<String> keys = properties.stringPropertyNames();
            for (String name : keys) {
                String property = properties.getProperty(name);
                Person person=(Person)Class.forName(property).newInstance();
                map.put("1",person);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    public Object getBean(){
        //只是获取的全限定类名
        person0=(Person) map.get("1");
        return person0;

    }
}
